package com.binhthuan.catechist.client.dto;

import name.pehl.piriti.client.json.Json;
import name.pehl.piriti.client.json.JsonReader;
import name.pehl.piriti.client.json.JsonWriter;

import com.google.gwt.core.client.GWT;

/**
 * @author Giang Đinh - Thông tin về phụ huynh, tương ứng với bảng
 *         <b>phu_huynh</b> trong cơ sở dữ liệu.
 */
public class Parent {

    public interface ParentReader extends JsonReader<Parent> {
    }
    public interface ParentWriter extends JsonWriter<Parent> {
    }

    public static ParentReader READER = GWT.create(ParentReader.class);
    public static ParentWriter WRITER = GWT.create(ParentWriter.class);

    /**
     * Mã phụ huynh.
     */
    @Json
    private Integer id;
    
    /**
     * Tên thánh.
     */
    @Json
    private String patronSaint;
    
    /**
     * Tên gọi.
     */
    @Json
    private String firstName;
    
    /**
     * Họ gọi.
     */
    @Json
    private String lastName;
    
    /**
     * Họ tên (viết thường và không dấu).
     */
    @Json
    private String lowercaseName;
    
    /**
     * Nghề nghiệp.
     */
    @Json
    private String career;
    
    /**
     * Điện thoại liên lạc.
     */
    @Json
    private String phone;
    
    /**
     * Giới tính (là nam hay không).
     */
    @Json
    private Boolean male;

    public Parent() {
        
    }
    
    /**
     * Lấy mã phụ huynh.
     * @return Mã phụ huynh.
     */
    public Integer getId() {
        return id;
    }

    /**
     * Gán mã phụ huynh.
     * @param id
     *            Mã phụ huynh.
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Lấy tên thánh.
     * @return Tên thánh
     */
    public String getPatronSaint() {
        return patronSaint;
    }

    /**
     * Gán tên thánh.
     * @param patronSaint
     *            Tên thánh.
     */
    public void setPatronSaint(String patronSaint) {
        this.patronSaint = patronSaint;
    }

    /**
     * Lấy tên gọi.
     * @return Tên gọi.
     */
    public String getFirstName() {
        return firstName;
    }

    /**
     * Gán tên gọi.
     * @param firstName
     *            Tên gọi.
     */
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    /**
     * Lấy họ gọi.
     * @return Họ gọi.
     */
    public String getLastName() {
        return lastName;
    }

    /**
     * Gán họ gọi.
     * @param lastName
     *            Họ gọi.
     */
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    /**
     * Lấy họ tên (viết thường và không dấu).
     * @return Họ tên (viết thường và không dấu).
     */
    public String getLowercaseName() {
        return lowercaseName;
    }

    /**
     * Gán họ tên (viết thường và không dấu).
     * @param lowercaseName
     *            Họ tên (viết thường và không dấu).
     */
    public void setLowercaseName(String lowercaseName) {
        this.lowercaseName = lowercaseName;
    }

    /**
     * Lấy nghề nghiệp.
     * @return Nghề nghiệp.
     */
    public String getCareer() {
        return career;
    }

    /**
     * Gán nghề nghiệp.
     * @param career
     *            Nghề nghiệp.
     */
    public void setCareer(String career) {
        this.career = career;
    }

    /**
     * Lấy điện thoại liên lạc.
     * @return Điện thoại liên lạc.
     */
    public String getPhone() {
        return phone;
    }

    /**
     * Gán điện thoại liên lạc.
     * @param phone
     *            Điện thoại liên lạc.
     */
    public void setPhone(String phone) {
        this.phone = phone;
    }

    /**
     * Lấy giới tính (là nam hay không).
     * @return <b>true</b> nếu là nam.
     */
    public Boolean isMale() {
        return male;
    }

    /**
     * Gán giới tính nam.
     * @param male
     *            <b>true</b> nếu là nam.
     */
    public void setMale(Boolean male) {
        this.male = male;
    }
}
